This specification relates to emulating a mass storage device with a portable device.
A mass storage device is device for storing relatively large amounts of data. Mass storage devices can be peripheral devices in that they are not integrated into a base computer system. Rather, mass storage devices are generally optional devices that are used in conjunction with a base computer system. Mass storage devices are generally easily connectable to and disconnectable from the base computer system using a connection. Examples of peripheral mass storage devices include external magnetic hard drives, external optical drives, portable flash memory devices, digital cameras, digital audio players, portable media players, and flash memory cards. Some mass storage devices may additionally require adaptors to form connections with a base computer system. Some mass storage devices include combinations of functionality. For example, devices such as the Apple iPhone and the Sony Ericsson K800 store data and also act as digital cameras, portable media players, and cellular phones.
Examples of connections include Universal Serial Bus (USB) connections. USB connections are connections that are in accordance with a USB specification. The USB 1.0 specification was introduced in 1996 and the USB 2.0 specification was released in April 2000. USB connections are asymmetric in that a host or master base computer system (usually a desktop or notebook computer) controls the relationship with one or more slave devices. The USB mass storage device class (alternatively referred to as USB Mass Storage Class (MSC) or USB Universal Mass Storage (UMS)) is a set of communications protocols suitable for USB connections. Mass storage devices which support this standard are referred to as MSC or UMS devices. Support for MSC or UMS devices is provided by default in many modern operating systems. As a result, MSC or UMS devices can be accessed from a host device without separate drivers dedicated to particular devices.
Mass storage devices can use a file system to organize directories and files. Examples of file systems include File Allocation Table (FAT) file systems. A FAT is an index that records the physical location of directories and files, and portions of files, on a data storage device. FAT file systems generally includes four different sections, namely, reserved sectors, the FAT region, the root directory region, and the data region. The reserved sectors are located at the very beginning of FAT file systems. The first reserved sector (sector 0) is the Boot Sector and generally includes the BIOS Parameter Block and the operating system's boot loader code. The number of reserved sectors is indicated by a field inside the Boot Sector. For FAT32 file systems, the reserved sectors include a File System Information Sector at sector 1 and a Backup Boot Sector at Sector 6. The FAT region generally includes copies of the File Allocation Table. A File Allocation Table is a map of the data region and indicates which clusters are used by which files and directories. In FAT12 and FAT16, the root directory region is a directory table that stores information about the files and directories located in the root directory. FAT32 stores the root directory in the data region, along with files and other directories. Thus, for FAT32, the data region begins with the root directory region. The data region is where the actual file and directory data is stored. The size of files and subdirectories can be increased by adding links to a file's chain in the FAT.